/**
 * Javascript file for sources needed at usermanagement.php
 */

function clear_fields_for_new_user() {
	// hide delete button
	dojo.byId("delete_icon").style.display = "none";
	// clear all values
	dijit.byId("username").set("value", "");
	dijit.byId("ogame_playerid").set("value", "");
	dijit.byId("ogame_allyid").set("value", "");
	dijit.byId("stylepath").set("value", "styles.css");
	dijit.byId("email").set("value", "");
	// re-enable field in case it was set read-only before
	dijit.byId("email").set("readOnly", false);
	
	dijit.byId("cansearchOFF").set("checked", "true");
	dijit.byId("caninsertOFF").set("checked", "true");
	dijit.byId("candeleteOFF").set("checked", "true");
	dijit.byId("statusviewOFF").set("checked", "true");
	dijit.byId("probeviewOFF").set("checked", "true");
	dijit.byId("usermanOFF").set("checked", "true");
	dijit.byId("historyOFF").set("checked", "true");
	dijit.byId("diplomaticOFF").set("checked", "true");
	dijit.byId("fleetinfoOFF").set("checked", "true");
	dijit.byId("activitiesOFF").set("checked", "true");
	dijit.byId("maintenanceOFF").set("checked", "true");
	
	dojo.byId("user_id").value = "dummy";
	return;
}

function set_permission_read_only(read_only) {
	var value = false;
	if (read_only == true) value = true;

	// set permissions read only
	dijit.byId("cansearchON").set("readOnly", value);
	dijit.byId("cansearchOFF").set("readOnly", value);
	dijit.byId("caninsertON").set("readOnly", value);
	dijit.byId("caninsertOFF").set("readOnly", value);
	dijit.byId("candeleteON").set("readOnly", value);
	dijit.byId("candeleteOFF").set("readOnly", value);
	dijit.byId("statusviewON").set("readOnly", value);
	dijit.byId("statusviewOFF").set("readOnly", value);
	dijit.byId("probeviewON").set("readOnly", value);
	dijit.byId("probeviewOFF").set("readOnly", value);
	dijit.byId("usermanON").set("readOnly", value);
	dijit.byId("usermanOFF").set("readOnly", value);
	dijit.byId("historyON").set("readOnly", value);
	dijit.byId("historyOFF").set("readOnly", value);
	dijit.byId("diplomaticON").set("readOnly", value);
	dijit.byId("diplomaticOFF").set("readOnly", value);
	dijit.byId("fleetinfoON").set("readOnly", value);
	dijit.byId("fleetinfoOFF").set("readOnly", value);
	dijit.byId("activitiesON").set("readOnly", value);
	dijit.byId("activitiesOFF").set("readOnly", value);
	if (user_is_admin == true) {
		dijit.byId("maintenanceON").set("readOnly", value);
		dijit.byId("maintenanceOFF").set("readOnly", value);
	} else {
		dijit.byId("maintenanceON").set("readOnly", true);
		dijit.byId("maintenanceOFF").set("readOnly", true);
	}
}

function switch_user() {
	var id = dijit.byId("user_selection").value;
	
	if (id == "new_user") {
		clear_fields_for_new_user();
		return;
	} else {
		dojo.byId("messageAreaContent").innerHTML = "";
		dojo.byId("messageArea").style.display    = "none";
	}
	
	var xhrArgs = {
			url: "ajax/ajax_usermanagement.php?type=user_detail&id="+id,
			handleAs: "json",
			load: function(jsonData) {
				// set values
				dojo.byId("user_id").value = id;

				if (id != own_userid) {
					// set email to read only
					dijit.byId("email").set("readOnly", true);
				} else {
					dijit.byId("email").set("readOnly", false);
				}
				
				dijit.byId("username").set("value", jsonData.username);
				dijit.byId("ogame_playerid").set("value", jsonData.ogame_playerid);
				dijit.byId("ogame_allyid").set("value", jsonData.ogame_allyid);
				dijit.byId("stylepath").set("value", jsonData.stylepath);
				dijit.byId("email").set("value", jsonData.email);
				
				if (jsonData.is_admin == "true") {
					// hide delete button
					dojo.byId("delete_icon").style.display = "none";
					// set permissions read only
					set_permission_read_only(true);
				} else {
					// show delete button
					dojo.byId("delete_icon").style.display = "inline";
					// in case the permissions are read only - enable them again
					set_permission_read_only(false);
				}
				var onoff = (jsonData.cansearch == "true") ? "ON" : "OFF"; 
				dijit.byId("cansearch"+onoff).set("checked", "true");
				onoff = (jsonData.caninsert == "true") ? "ON" : "OFF";
				dijit.byId("caninsert"+onoff).set("checked", "true");
				onoff = (jsonData.candelete == "true") ? "ON" : "OFF";
				dijit.byId("candelete"+onoff).set("checked", "true");
				onoff = (jsonData.statusview == "true") ? "ON" : "OFF";
				dijit.byId("statusview"+onoff).set("checked", "true");
				onoff = (jsonData.probeview == "true") ? "ON" : "OFF";
				dijit.byId("probeview"+onoff).set("checked", "true");
				onoff = (jsonData.userman == "true") ? "ON" : "OFF";
				dijit.byId("userman"+onoff).set("checked", "true");
				onoff = (jsonData.history == "true") ? "ON" : "OFF";
				dijit.byId("history"+onoff).set("checked", "true");
				onoff = (jsonData.diplomatic == "true") ? "ON" : "OFF";
				dijit.byId("diplomatic"+onoff).set("checked", "true");
				onoff = (jsonData.fleetinfo == "true") ? "ON" : "OFF";
				dijit.byId("fleetinfo"+onoff).set("checked", "true");
				onoff = (jsonData.activities == "true") ? "ON" : "OFF";
				dijit.byId("activities"+onoff).set("checked", "true");
				onoff = (jsonData.maintenance == "true") ? "ON" : "OFF";
				dijit.byId("maintenance"+onoff).set("checked", "true");
			},
			error: function(error) {
				console.log("Error: "+error);
			}
		}	
	dojo.xhrPost(xhrArgs);
	
	
}

function delete_user() {
	var id = dijit.byId("user_selection").value;
	if (id == "new_user") {
		return;
	}

	var xhrArgs = {
			url: "ajax/ajax_usermanagement.php?type=delete_user&id="+id,
			handleAs: "json",
			load: function(jsonData) {
				// show message must happen afterwards
				if (jsonData.messages != null) {
					showMessages(jsonData);
				}	
				
				// remove user from select dropdown
				dijit.byId("user_selection").removeOption(id.toString());
				// clear fields (done by switching the user to new_user - first in the list)
				
			},
			error: function(error) {
				console.log("Error: "+error);
			}
		}	
	dojo.xhrPost(xhrArgs);	
}

function validate_form() {
	var fields = new Array("username","stylepath","email");
	var i, error;

	// 1. validate that all fields are valid
	for (i=0; i<fields.length; i++) {
		if (dijit.byId(fields[i]).get("state") != "") {
			dijit.byId(fields[i]).set("state","Error");
			return false;
		}
	}
	
	if (dijit.byId("pass1").value != dijit.byId("pass2").value) {
		dijit.byId("pass1").set("state","Error");
		dijit.byId("pass2").set("state","Error");
		return false;
	} else {
		dijit.byId("pass1").set("state","");
		dijit.byId("pass2").set("state","");
	}
	
	return true;
}